<?php

/**
 * Subclass for performing query and update operations on the 'comment' table.
 *
 *
 *
 * @package lib.model
 */
class CommentPeer extends BaseCommentPeer
{
    static function getBbsArticles($search_arr = array(),
    $page = 1,
    $perpage = 10
    ){
        $c = new Criteria;

        //print_r($search_arr);exit;

        //$search_arrが存在する場合、検索条件によりadd
        foreach($search_arr as $k => $v){
            switch($k){
                case "word":
                    if($v = ""){
                        $c->add(self::CONTENT, "%{$v}%", Criteria::LIKE);
                    }
                    break;
                case "category":
                    if($v = ""){
                        $c->add(self::CATEGORY_ID, $v);
                    }
                    break;
                case "date_start":
                case "date_end":
                    if(isset($date_flg)){
                        break;
                    }
                    //ひとつのカラムに複数の条件をつける際に使うgetNewCriterion
                    if($search_arr["date_start"] && $search_arr["date_end"]){
                        $c1 = $c->getNewCriterion(
                        self::CREATED_AT,
                        $search_arr["date_start"],
                        Criteria::GREATER_EQUAL);
                        $c2 = $c->getNewCriterion(
                        self::CREATED_AT,
                        $search_arr["date_end"],
                        Criteria::LESS_EQUAL);
                        $c1->addAnd($c2);
                        $c->add($c1);

                    }elseif($search_arr["date_start"]){
                        $c->add(self::CREATED_AT, $searc_arr["date_start"], Criteria::GREATER_EQUAL);
                    }elseif($search_arr["date_end"]){
                        $c->add(self::CREATED_AT, $searc_arr["date_end"], Criteria::LESS_EQUAL);
                    }

                    $date_flg = 1;
                    break;
                case "photo":
                    if($v == "y"){
                        $c1 = $c->getNewCriterion(self::PHOTO, "", Criteria::NOT_EQUAL);
                        $c2 = $c->getNewCriterion(self::PHOTO, NULL, Criteria::NOT_EQUAL);
                        $c1->addAnd($c2);//$c1に$c2を合わせる
                        $c->add($c1);//$cに＄ｃ２が合わさった$c1を合わせる
                    }elseif($v == "n"){
                        $c1 = $c->getNewCriterion(self::PHOTO, "");
                        $c2 = $c->getNewCriterion(self::PHOTO, NULL);
                        $c1->addOr($c2);//$c1に$c2を合わせる
                        $c->add($c1);//$cに＄ｃ２が合わさった$c1を合わせる
                    }
                    break;
                case "url":
                    if($v == "y"){
                        $c1 = $c->getNewCriterion(self::URL, "", Criteria::NOT_EQUAL);
                        $c2 = $c->getNewCriterion(self::URL, NULL, Criteria::NOT_EQUAL);
                        $c1->addAnd($c2);//$c1に$c2を合わせる
                        $c->add($c1);//$cに＄ｃ２が合わさった$c1を合わせる
                    }elseif($v == "n"){
                        $c1 = $c->getNewCriterion(self::URL, "");
                        $c2 = $c->getNewCriterion(self::URL, NULL);
                        $c1->addOr($c2);//$c1に$c2を合わせる
                        $c->add($c1);//$cに＄ｃ２が合わさった$c1を合わせる
                    }
                    break;

            }
        }

        $c = self::setOrderByParam($search_arr["order_by"], $c);

        /*
        自身を参照する場合のみ、「～Peer」ではなく「self」で参照できる
        if($search_arr["order_by"] != "asc"){
            $c->addDescendingOrderByColumn(self::CREATED_AT);
        }else{
            $c->addAscendingOrderByColumn(self::CREATED_AT);
        }
        */

        $rtn = self::getPropelPagerObject($c, $perpage, $page);
        return $rtn;

        /*
        ページ数とページ位置により、表示する内容を操作するクラス
        $pager = new sfPropelPager("Comment",$perpage);
        $pager->setCriteria($c);
        $pager->setPage($page);
        $pager->init();
        return $pager;
        */

        //return self::doSelect($c);
    }

    protected static function setOrderByParam($param, $c){

        //自身を参照する場合のみ、「～Peer」ではなく「self」で参照できる
        if($param != "asc"){
            $c->addDescendingOrderByColumn(self::CREATED_AT);
        }else{
            $c->addAscendingOrderByColumn(self::CREATED_AT);
        }
        return $c;

    }

    protected static function getPropelPagerObject($c, $perpage, $page){

        //ページ数とページ位置により、表示する内容を操作するクラス
        $pager = new sfPropelPager("Comment",$perpage);
        $pager->setCriteria($c);
        $pager->setPage($page);
        $pager->init();
        return $pager;
        }

















}






















